//
// Created by 29245 on 2025/8/26.
//

#ifndef ZHIZHU_SERVO_H
#define ZHIZHU_SERVO_H

#ifdef __cplusplus
extern "C" {
#endif

#include "main.h"

/**
 * @brief  初始化舵机PWM输出
 * @note   配置参数: 预分频器720, 自动重装载值2000
 * @param  None
 * @retval None
 */
void Servo_Init(void);

/**
 * @brief  设置舵机角度
 * @param  channel: 定时器通道 (TIM_CHANNEL_3 或 TIM_CHANNEL_4)
 * @param  angle: 目标角度 (0-180度)
 * @retval None
 */
void Servo_SetAngle(uint32_t channel, uint16_t angle);

/**
 * @brief  设置舵机脉冲宽度(直接控制脉冲宽度)
 * @param  channel: 定时器通道 (TIM_CHANNEL_3 或 TIM_CHANNEL_4)
 * @param  pulse_width_us: 脉冲宽度(微秒) (500-2500us)
 * @retval None
 */
void Servo_SetPulseWidth(uint32_t channel, uint16_t pulse_width_us);

/**
 * @brief  舵机扫动示例函数
 * @param  channel: 定时器通道
 * @retval None
 */
void Servo_Sweep(uint32_t channel);

#ifdef __cplusplus
}
#endif

#endif //ZHIZHU_SERVO_H